/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package manutençãoempregados.UTILS;

import classesDados.Empregado;
import classesDados.Emprestimo;
import java.math.BigDecimal;
import java.math.MathContext;

/**
 *
 * @author SLESTUDOS
 */
public class CalcularEmrpestimoDesignado {
    
    private static String totalPagar;
    private static int prestacoes;
    private static double taxaJuros;
    private static BigDecimal valorPrestacao;
    private static BigDecimal valorEmprestimo;
    private static BigDecimal CF;
    private static Empregado empregado;
    private static Emprestimo emprestimo;

    public CalcularEmrpestimoDesignado(){
            
    }
    
    public static void CalcularEmprestimoDesignado(BigDecimal valorEmpr, int prest, Empregado empr){
        valorEmprestimo = valorEmpr;
        prestacoes = prest;
        empregado = empr;        
        
        CalcularTaxaJuros();
        CalcularCF();
        CalcularvalorPrestacao();
        CaclularValorTotal(); 
        CriarEmprestimo();
    }

    public static Emprestimo getEmprestimo() {
        return emprestimo;
    }
    
    private static void CriarEmprestimo(){
        emprestimo = new Emprestimo(totalPagar, prestacoes, taxaJuros, valorPrestacao, valorEmprestimo, empregado);
    }
    
    private static void CalcularCF(){
        CF = BigDecimal.valueOf((taxaJuros/(1-(1/Math.pow((1+taxaJuros),prestacoes)))));
    }

    private static void CalcularvalorPrestacao(){
        valorPrestacao = (valorEmprestimo.multiply(CF).round(MathContext.DECIMAL32));
    }

    private static void CaclularValorTotal() {
        totalPagar = String.valueOf(valorPrestacao.multiply(BigDecimal.valueOf(prestacoes)));
    }

    private static void CalcularTaxaJuros(){
        if(prestacoes >= 1 && prestacoes <= 3)
            taxaJuros = 0.05;
        if(prestacoes >= 4 && prestacoes <= 9)
            taxaJuros = 0.065;
        if(prestacoes >= 10 && prestacoes <= 15)
            taxaJuros = 0.08;
        if(prestacoes >= 16 && prestacoes <= 24)
            taxaJuros = 0.10;
    }
        
     public static BigDecimal getValorPrestacao() {
        return valorPrestacao;
    }
     
    public static int getPrestacoes() {
        return prestacoes;
    }

    public static double getTaxaJuros() {
        return taxaJuros;
    }

    public static String getTotalPagar() {
        return totalPagar;
    }

    public static BigDecimal getValorEmprestimo() {
        return valorEmprestimo;
    }

   
}

